草庐IT

C++ 内存分配

全部标签

c++ - boost::interprocess 共享内存在 32 和 64 位进程之间

我正在尝试让boost::interprocess在32位和64位进程之间共享内存。Thisbugtrackerentry这表明这在我使用的Boost1.49中是可能的。作为测试,我尝试共享一个无符号整数。这是一个带有两个按钮的简单Qt应用程序。#defineSHARED_MEMORY_NAME"Mysharedmemory"#defineSHARED_VAR_NAME"testVar"namespacebip=boost::interprocess;voidon_createMemButton_clicked(){std::cout(SHARED_VAR_NAME)(42);std:

windows - 尽管我的系统中有可用内存,但仍无法访问 R 中的更多内存

这个问题在这里已经有了答案:Increasing(ordecreasing)thememoryavailabletoRprocesses(7个答案)关闭8年前。我正在尝试使用我在stackoverflow(Increasing(ordecreasing)thememoryavailabletoRprocesses)中找到的代码访问更多内存。但是,我收到以下无法解决的错误:memory.limit(10000)Errorinmemory.limit(10000):don'tbesilly!:yourmachinehasa4GbaddresslimitR告诉我我有4gb地址限制(尽管我使用

windows - windbg 内存泄漏调查 - 缺少堆内存

我正在使用windbg调查Windows应用程序中的缓慢内存泄漏!heap-s给出以下输出HeapFlagsReservCommitVirtFreeListUCRVirtLockFast(k)(k)(k)(k)lengthblockscont.heap-------------------------------------------------------------------------------------00000023d62c0000080000021182680116999611819001575927697832b63LFH00000023d483000008008

windows - .data 部分是否加载到内存中?

我尝试了以下测试来查看程序执行时.data部分是否加载到内存中:global_startsection.dataarrtimes99999999DB0xAFsection.text_start:jmp_start;preventprocessfromterminating组装和链接:nasm-fwin32D:\file.asmlinkD:\file.obj/OUT:D:\file.exe/ENTRY:start/SUBSYSTEM:CONSOLE我已经执行了程序,结果如下:正如你所看到的,程序只占用了276KB的内存,而它有一个大小为99999999字节的数组!

c++ - 在 Windows 7/8/Store C++ 中播放内存中的压缩音频

Windows在这方面有太多的API太荒谬了。据说MediaFoundation是执行此操作的方法,但我在MSDN文档中看到很多“已弃用”,并且他们提供的示例仅用于从URL播放音乐。我在内存中有一个压缩的音频文件(mp3、m4a等)。现在我正在使用他们的CPlayer示例。(https://msdn.microsoft.com/en-us/library/windows/desktop/bb970516(v=vs.85).aspx)。有没有办法让MediaFoundation从内存中加载源?或者我是否必须在单独的线程中解压缩它并将其提供给XAudio2? 最

windows - imageMagick 的内存问题?

我在使用convertF:\path\source.png-defineregistry:temporary-path=F:\path-limitarea0-typepalette-colors256F:\path\target.png临时路径以及我的源图像和目标图像位于外部硬盘驱动器上。我使用区域0是因为我不想让ImageMagick使用我的系统内存或C:。我遇到的错误:convert.exe:unabletoopenimage`F:\path\target.png':Fileexists@error/blob.c/OpenBlob/2709.和convert.exe:WriteBl

windows - 防止代理重新分配

我在大公司工作,老大哥总是观察并执行自己的规则。然而,为了完成我的工作,我在IE8中有特殊的代理服务器设置,这让我可以访问我需要的东西。全部合法且基于职位描述。一切都很好,除了每隔几个小时我的设置就会恢复到标准状态,我必须手动将它们重置为这个特殊的代理。我认为安全团队会强制执行一些GPO设置来执行此操作。我在我的计算机上拥有管理员权限,但当然在域上没有权限。我有什么办法可以防止对我的个人设置进行此类更改?那会很有帮助。即使我可以手动进行更改,当我有自动化流程时,它最让我困扰。有的batch运行到半夜无法运行是因为代理设置错误。非常令人沮丧。有什么帮助吗? 最

c - 如何正确使用 ExAllocatePoolWithTag 使其不返回 STATUS_INSUFFICIENT_RESOURCES?

我正在为IO过滤器驱动程序编写内核模式测试。当我运行我的测试时,它们都通过了,但是如果我连续运行它们3次,测试就会开始失败。我将问题缩小到ExAllocatePoolWithTag一段时间后开始返回STATUS_INSUFFICIENT_RESOURCES。为了重现这个问题我写了一个专门的测试staticvoid__stdcallTestFoo_StressLoad(){inti;for(i=0;i我的使用模式是:分配内存(ExAllocatePoolWithTag)执行单个测试释放内存(ExFreePoolWithTag)我的问题是:如何正确使用ExAllocatePoolWithT

c# - 使用 VS 2010 调试导入的 dll

我在尝试从C#代码调用WinAPI函数时遇到问题。我有很多导入,其中很多工作正常,但其中一些没有,并导致意外中断主程序,没有任何消息、异常类型,什么都没有,只是掉下所有窗口并退出。我在代码中有两种方法:通过我开发的库,其中有更多的winapi调用,我懒得编写特定结构、指针等代码,并直接从user32.dll导入,如下所示:[DllImport(@"tradeInterop.dll")]publicstaticexternvoidChooseInstrumentByMouse(UInt32hwnd,intbaseX,intbaseY,intidx,int_isDown);[DllImpo

c - 使用 Windows 调试器查看用 C 写入的内存位置?

我在dosbox中运行了TurboC和Windows调试我有这个C程序,它有两条主线,如你所见。inta=5然后一行显示a的地址,printf("addressofa=%x",&a)我运行它好像告诉我a已经分配到了fff4的地址现在我想使用调试来希望在该内存地址看到5的值但是没有显示如何在调试中看到它? 最佳答案 这是编译后的main函数的DEBUG输出:16E1:01FA55PUSHBP16E1:01FB8BECMOVBP,SP16E1:01FD83EC02SUBSP,+0216E1:0200C746FE0500MOVWORDPT